Enhancing Trace Generation-based Software Debugging Infrastructure for Physical and Emulated Development Platforms
نویسنده
چکیده
Software debugging is now widely reported to constitute the majority of software development time and cost, largely due to the effects of continuously rising software complexity. In a trend which is expected to continue, complex software faults that can require weeks to resolve are becoming increasingly commonplace. Since traditional debugging methods are considered unsuitable for resolving such faults, trace generation is being recognized as a solution to future debugging needs. This thesis presents trace generation infrastructure that includes advanced on-chip supporting hardware, complementary software tools, and interfaces to bridge the gap between them. The contributions enable or enhance the use of trace generation across a variety of software development platforms. Even though embedded software development is increasingly performed on software emulators, many existing emulators lack trace generation capabilities. This thesis provides the ubiquitous QEMU emulator with the ability to perform trace experiments. The described extensions enable continuous instruction-level trace generation to be controlled using a standard software debugger client, which is given the ability to create tracepoints to dynamically log registers and memory addresses. The infrastructure is made aware of operating system context-switching in a unique way, which allows traces to be collected in five different modes: from all executed code, down to a single Linux process. For hardware-based development platforms, the volume of on-chip trace data generated in real-time can exceed the ability to practically transfer or store it. This thesis presents two different schemes for the compression of execution traces, which are vital in establishing the flow of software execution post-hoc. The Architecture-Aware Trace Compression (AATC) scheme eliminates previously unidentified redundancies within typical execution traces using a combination of on-chip predictors, transforms, and encoders. The scheme achieves the highest-performance compression of any similar method, most notably by exploiting the widespread use of linked branches, as well as the compiler-driven movement of return addresses between link-register, stack, and program counter. The Multi-Architectural Trace Compression (MATC) scheme is also introduced to compress the execution traces of any fixed instruction-width soft-core processor deployed on Field-Programmable Gate Array (FPGA) platforms. A novel architecture is presented in which five parameterizable variants of a pipelined scheme allow different combinations of unused logic and memory resources to be repurposed for trace compression purposes.
منابع مشابه
MARKOVIAN SOFTWARE RELIABILITY MODEL FOR TWO TYPES OF FAILURES WITH IMPERFECT DEBUGGING RATE AND GENERATION OF ERRORS
N
متن کاملTermite: Emulation Testbed for Encounter Networks
Cutting-edge mobile devices like smartphones and tablets are equipped with various infrastructureless wireless interfaces, such as WiFi Direct and Bluetooth. Such technologies allow for novel mobile applications that take advantage of casual encounters between co-located users. However, the need to mimic the behavior of real-world encounter networks makes testing and debugging of such applicati...
متن کاملOrchestrated service deployment, maintenance, and debugging in IaaS clouds for crowd computing
The One Click Cloud Orchestrator framework provides facilities to create and maintain virtual e-infrastructures, such as crowd or volunteer computing platforms, on various cloud systems. Complex service deployment and maintenance scenarios supported by such cloud orchestrators pose new challenges since software engineers and testers face (among others) the probe effect, the irreproducibility, t...
متن کاملA Methodology for Efficiently Developing On-Line Tools for Heterogeneous Middleware
Software development is getting more and more complex, especially within distributed and heterogeneous environments based on middleware enabling the interaction of distributed components. A major drawback during the overall software development process is the lack of on-line tools, i.e. tools applied as soon as there is a running prototype of an application. On-line tools can either be used for...
متن کاملAutomated Post-Silicon Debugging of Design Bugs
As design size and complexity increase in the modern IC design, more design bugs escape the pre-silicon verification process and slip into the silicon. Efficient automation of postsilicon debugging procedures helps to reduce debugging time and to increase diagnosis accuracy. This paper presents an automated approach for post-silicon debugging of design bugs by integrating post-silicon trace ana...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014